package com.itlong.cloud.operate.service;

import com.itlong.cloud.POJO.DTO.operate.*;
import com.itlong.cloud.POJO.VO.operate.WwLyOperateAppInfoVO;
import com.itlong.cloud.POJO.VO.operate.WwOperateAppInfoVO;
import com.itlong.cloud.POJO.VO.operate.WwOperateDeveloperAccountVO;
import com.itlong.cloud.POJO.VO.operate.WwOperateProjectInfoVO;
import com.itlong.cloud.utils.page.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * <des>
 *       开发者应用业务处理接口
 * <des>
 *
 * @create Date 2021-08-18
 **/
public interface IOperateWwAppService {
    /**
    * <desc>
    *      获取应用列表
    * </desc>
    * @param wwOperateSelectAppDTO
    * @return: com.itlong.cloud.utils.page.Page<com.itlong.cloud.POJO.VO.operate.WwOperateAppInfoVO>
    * @author LiuYu
    * @date: 2021-08-18
     **/
    Page<WwLyOperateAppInfoVO> getAppPageList(WwOperateSelectAppDTO wwOperateSelectAppDTO) throws Exception;

    /**
    * <desc>
    *     创建应用
    * </desc>
    * @param wwLyOperateCreateAppInfoDTO
    * @return: java.lang.Integer
    * @author LiuYu
    * @date: 2021-08-19
     **/
    Integer save(WwLyOperateCreateAppInfoDTO wwLyOperateCreateAppInfoDTO) throws Exception;

    /**
     * <desc>
     *     修改应用
     * </desc>
     * @param wwLyOperateUpdateAppInfoDTO
     * @return: java.lang.Integer
     * @author LiuYu
     * @date: 2021-08-19
     **/
    Integer update(WwLyOperateUpdateAppInfoDTO wwLyOperateUpdateAppInfoDTO) throws Exception;

    /**
     * <desc>
     *     添加开发者账号
     * </desc>
     * @param wwLyCreateDeveloperAccountDTO
     * @return: java.lang.Integer
     * @author LiuYu
     * @date: 2021-08-19
     **/
    Integer saveDeveloperAccount(WwLyCreateDeveloperAccountDTO wwLyCreateDeveloperAccountDTO) throws Exception;

    /**
    * <desc>
    *    安全设置
    * </desc>
    * @param ipAddresses
    * @param appId
    * @return: java.lang.Integer
    * @author LiuYu
    * @date: 2021-08-23
     **/
    Integer updateSecuritySetting(String ipAddresses,String appId);

    /**
     * <desc>
     *   启用禁用
     * </desc>
     * @param status
     * @param appId
     * @return: java.lang.Integer
     * @author LiuYu
     * @date: 2021-08-23
     **/
    Integer updateStatus(Integer status, String appId);

    /**
    * <desc>
    *   有效期授权
    * </desc>
    * @param wwLyOperateUpdateEffectTimeDTO
    * @return: java.lang.Integer
    * @author LiuYu
    * @date: 2021-08-23
     **/
    Integer updateEffectTime(WwLyOperateUpdateEffectTimeDTO wwLyOperateUpdateEffectTimeDTO) throws Exception;

//    /**
//    * <desc>
//    *    上传图片
//    * </desc>
//    * @param file
//    * @return: java.lang.String
//    * @author LiuYu
//    * @date: 2021-08-19
//     **/
//    String  uploadImage(MultipartFile file) throws IOException;
    /**
    * <desc>
    *     查询开发者账号列表
    * </desc>
    * @param wwOperateSelectDeveloperAccountDTO
    * @return: com.itlong.cloud.utils.page.Page<com.itlong.cloud.POJO.VO.operate.WwOperateDeveloperAccountVO>
    * @author LiuYu
    * @date: 2021-08-19
     **/
    Page<WwOperateDeveloperAccountVO> getDeveloperAccountPageList(WwOperateSelectDeveloperAccountDTO wwOperateSelectDeveloperAccountDTO) throws Exception;

    /**
    * <desc>
    *      查询项目列表
    * </desc>
    * @param wwOperateSelectProjectDTO
    * @return: com.itlong.cloud.utils.page.Page<com.itlong.cloud.POJO.VO.operate.WwOperateProjectInfoVO>
    * @author LiuYu
    * @date: 2021-08-19
     **/
//    Page<WwOperateProjectInfoVO> getProjectPageList(WwOperateSelectProjectDTO wwOperateSelectProjectDTO) throws Exception;

}

